// TODO: 没有体力写了，先放这里吧。

#include <cmath>
#include <cstdio>
#include <cstring>

int m, n, a[1000010], p[1000010], now[1000010], ans[1000010];
int main() {
  int i, j, k, x, y, z, tot = 0, cnt = 0;
  bool flag;
  scanf("%d%d", &n, &m);
  x = sqrt(m + 0.5);
  for (i = 2; i <= x; i++)
    if (m % i == 0) {
      a[++tot] = i;
      while (m % i == 0) {
        m /= i;
        p[tot]++;
      }
    }
  if (m > 1) {
    a[++tot] = m;
    p[tot] = 1;
  }
  for (i = 1; i < n - 1; i++) {
    x = n - i;
    y = i;
    for (j = 1; j <= tot; j++)
      while (x % a[j] == 0) {
        x /= a[j];
        now[j]++;
      }
    for (j = 1; j <= tot; j++)
      while (y % a[j] == 0) {
        y /= a[j];
        now[j]--;
      }
    flag = 1;
    for (j = 1; j <= tot; j++)
      if (p[j] > now[j]) {
        flag = 0;
        break;
      }
    if (flag) ans[++cnt] = i + 1;
  }
  printf("%d\n", cnt);
  for (i = 1; i <= cnt; i++) printf("%d%c", ans[i], i == cnt ? '\n' : ' ');
}
